Artigos relacionados * [Padrões de empacotamento do Arch](/index.php/Padr%C3%B5es_de_empacotamento_do_Arch "Padrões de empacotamento do Arch") * [Arch Build System](/index.php/Arch_Build_System_(Portugu%C3%AAs) "Arch Build System (Português)") * [Criando pacotes](/index.php/Criando_pacotes "Criando pacotes") * [PKGBUILD](/index.php/PKGBUILD_(Portugu%C3%AAs) "PKGBUILD (Português)") * [Category:Package development (Português)](/index.php/Category:Package_development_(Portugu%C3%AAs) "Category:Package development (Português)") * [Arch User Repository](/index.php/Arch_User_Repository_(Portugu%C3%AAs) "Arch User Repository (Português)") * [makepkg](/index.php/Makepkg_(Portugu%C3%AAs) "Makepkg (Português)") * [pacman](/index.php/Pacman_(Portugu%C3%AAs) "Pacman (Português)") * [pacman/Dicas e truques](/index.php/Pacman/Dicas_e_truques "Pacman/Dicas e truques") Arquivos `.SRCINFO` contêm metadados de pacote em um formato simples e não ambíguo, de forma que as ferramentas como o *backend* do [AUR](/index.php/AUR_(Portugu%C3%AAs) "AUR (Português)") ou [auxiliares do AUR](/index.php/Auxiliares_do_AUR "Auxiliares do AUR") possam obter os metadados de um pacote sem analisar o [PKGBUILD](/index.php/PKGBUILD_(Portugu%C3%AAs) "PKGBUILD (Português)") diretamente. Veja [FS#25210](https://bugs.archlinux.org/task/25210), [FS#15043](https://bugs.archlinux.org/task/15043) e [FS#16394](https://bugs.archlinux.org/task/16394) para exemplos de questões que podem surgir de tentar analisar scripts shell. **Atenção:** Alterações a metadados do `PKGBUILD`, tal como atualizações de [pkgver()](/index.php/PKGBUILD_(Portugu%C3%AAs)#pkgver "PKGBUILD (Português)"), não se propagam automaticamente para o `.SRCINFO`. Fazer o *push* de um `PKGBUILD` editado para o AUR sem atualizar também seu `.SRCINFO` fará com que o AUR forneça metadados antigos. ## Criação Arquivos `.SRCINFO` podem ser gerados usando makepkg. ``` $ makepkg --printsrcinfo > .SRCINFO ``` ## Sintaxe Arquivos `.SRCINFO` são listas de pares de `chave = valor`, separados em seções. Chaves levam seus nomes e significados de [variáveis do PKGBUILD](https://www.archlinux.org/pacman/PKGBUILD.5.html#_options_and_directives). Nem as chaves nem valores são colocados entre aspas. Dados que, em um `PKGBUILD`, seriam representados por um vetor são especificados múltiplas vezes. Por exemplo, os conteúdos a seguir são equivalentes. ``` # PKGBUILD arch=(i686 x86_64) ``` ``` # .SRCINFO arch = i686 arch = x86_64 ``` A seção principal do arquivo é iniciada por uma declaração de [pkgbase](/index.php/PKGBUILD_(Portugu%C3%AAs)#pkgbase "PKGBUILD (Português)") e contém dados aplicáveis ao pacote como um todo. Em um `PKGBUILD` padrão descrevendo um pacote simples, essa será a única seção, seguida por uma declaração de [pkgname](/index.php/PKGBUILD_(Portugu%C3%AAs)#pkgname "PKGBUILD (Português)") contendo o mesmo valor que o pkgbase precedente. ``` pkgbase = foo pkgdesc = Um exemplo de pacote. ... md5sums = SKIP pkgname = foo ``` Em um `PKGBUILD` dividido, cada seção é iniciada por um `pkgname`, seguido por quaisquer dados específicos daquele pacote. ## Especificação Os seguintes campos podem aparecer apenas uma vez em cada arquivo `.SRCINFO`, na seção `pkgbase`: * `pkgver`, `pkgrel`, `epoch` Os seguintes campos podem aparecer mais de uma vez em qualquer seção. * `pkgdesc`, `url`, `install`, `changelog` Os seguintes campos podem ser repetidos dentro de uma seção para especificar múltiplos valores: * `arch` * `groups` * `license` * `noextract` * `options` * `backup` * `validpgpkeys` Os seguintes campos podem, adicionalmente, especificar múltiplas [arquiteturas](/index.php/PKGBUILD_(Portugu%C3%AAs)#arch "PKGBUILD (Português)") como mostrado abaixo: ``` source*_x86_64* = [https://foo.bar/arquivo.tar.gz](https://foo.bar/arquivo.tar.gz) source*_i686* = [https://foo.bar/arquivo_i686_patch.tar.gz](https://foo.bar/arquivo_i686_patch.tar.gz) ``` * `source` * `depends`, `checkdepends`, `makedepends`, `optdepends` * `provides`, `conflicts`, `replaces` * `md5sums`, `sha1sums`, `sha224sums`, `sha256sums`, `sha384sums`, `sha512sums` Campos com outros nomes são ignorados. Linhas em branco e linhas de comentários iniciando com sinais de cerquilha (`#`) também são ignoradas. Linhas podem ter recuo.